package JavaSE.FileLearning.FileClass;

import java.io.File;
import java.io.IOException;

/**
 *  测试 文件对象的过滤器功能
 *      通过实现FileFilter接口得到
 *      该接口中只有一个 accept()方法
 *      使用过滤器的地方：File对象的listFiles(new FileFilter) 即可
 */

public class Test {
    public static void main(String[] args) throws IOException {
        File pathname = new File("src\\JavaSE.FileLearning\\FileClass\\FileFilterTest");
        // 使用过滤器
        File[] files = pathname.listFiles(new FileFilterImp());
        assert files != null;
        for (File file : files) {
            System.out.println(file.getPath());
        }
        System.out.println("-------------------------");
        // 使用递归
        search(pathname);
    }

    public static void search(File pathname) {
        File[] files = pathname.listFiles();
        if(files == null || files.length == 0) {
            return;
        }
        for (int i = 0; i < files.length; i++) {
            if(files[i].isDirectory()) {
                search(files[i]);
            } else {
                if(files[i].getName().endsWith(".java")) {
                    System.out.println(files[i].getPath());
                }
            }
        }
    }
}
